Meal break not taken penalty, California
Add 1hr of regular pay when a meal break has not been taken within the first five hours of a shift, repeated by the 11th hour.
From the California DLSE:
"In general, when an employee works for a work period of more than five hours, a meal period must be provided no later than the end of the employee’s fifth hour of work (in other words, no later than the start of the employee’s sixth hour of work). When an employee works for a period of more than 10 hours, a second meal period must be provided no later than the end of the employee’s tenth hour of work (in other words, no later than the start of the employee’s eleventh hour of work)."
Details
Rule Type
Time
Execution
After shift
Parameters
Name | DataType | DefaultValue | Description |
---|---|---|---|
HourType | lookup | Earnings code to use for the meal break penalty payouts |
Decision Tree
Rule processing begins in the cell R1:Level1 and proceeds right/down. Any IF statement which results in a DONE step terminates the rule immediately.
Line# | Level1 | Level2 | Level3 | Comment |
---|---|---|---|---|
1 | Start | |||
2 | IF(EMPLOYEE(Exempt ) = 1 ) → | ↓ | No meal required if employee is Exempt | |
3 | ↓ | DONE | ||
4 | IF(CALC(hours_worked.day ) < 6 ) → | ↓ | No meal required if the hours worked is less than 6 | |
5 | ↓ | DONE | ||
6 | SET(mealpenalties = 0 ) | Initialize the number of penalties to zero; possible values when done will be 0, 1 or 2 | ||
7 | SET(meal1 = OCCURRENCES(Lunch , Start of day , Hours into day , 6.0 )) | Count number of meal breaks in the first 6 hours | ||
8 | SET(meal2 = OCCURRENCES(Lunch , Start of day , Hours into day , 11.0 )) | Count number of meal breaks in first 11 hours | ||
9 | SET(meal2 = SUBTRACT(meal2 , meal1 )) | Subtract meal1 (first 6 hours) from meal2 (first 11 hours) to get meals during hours 6->11 | ||
10 | IF(meal1 = 0 ) → | ↓ | If no meals during first part of day, add a penalty | |
11 | SET(mealpenalties = ADD(mealpenalties , 1 )) | |||
12 | IF(CALC(hours_worked.day ) >= 11 ) → | ↓ | If worked 11 or more hours, check for meal2.. | |
13 | IF(meal2 = 0 ) → | ↓ | If not meals during second part of the day, add a penalty | |
14 | SET(mealpenalties = ADD(mealpenalties , 1 )) | Add a meal penalty to running total | ||
15 | IF(mealpenalties = 0 ) → | ↓ | No penalties? | |
16 | ↓ | DONE | ..and we have meal breaks during the next 5 hours, no penalty | |
17 | SET( = INSERT_PUNCH(PayDate , HourType , mealpenalties , NL )) | Insert a meal break penalty for a number of hours | ||
18 | DONE |